home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 26 / AACD 26.iso / AACD / Programming / AllPlaton / Wial / Wial.AMOS / Wial.amosSourceCode < prev   
Encoding:
AMOS Source Code  |  2001-09-10  |  12.6 KB  |  466 lines

  1. Hide 
  2. ' CNF(0)=(Disk-Boot=0; HD-Boot=1)
  3. ' CNF(1)=Demos available 
  4. ' CNF(2)=Printer available 
  5. ' CNF(3)=Date
  6. ' CNF(4)=(Diskette=0; CD=1)  
  7. Dim CNF(5)
  8. Global CNF()
  9. CNF(0)=1
  10. CNF(1)=0
  11. CNF(2)=0
  12. CNF(3)=6489
  13. CNF(4)=0
  14. 'Goto SKIPTITLE
  15.  Extension_8_0EA2 "mod.wialtitle",-3
  16.  Extension_8_13C6 3
  17.  Extension_8_100C Extension_8_1398(1) To Start(3)+Length(3)
  18. WIALPRESENTS
  19. If Chip Free+Fast Free<700000 or Extension_8_060E =68000 Then WIALANIMLOWMEM Else WIALANIM
  20.  Extension_8_0EA2 "mod.main",-3
  21.  Extension_8_13C6 3
  22.  Extension_8_100C Extension_8_1398(1) To Start(3)+Length(3)
  23.  Extension_8_10F2 125
  24.  Extension_8_108E 3
  25. SKIPTITLE:
  26. MAIN
  27. End 
  28. Procedure WIALPRESENTS
  29.    Extension_8_13C6 3
  30.   Screen Open 1,320,512,2,0 : Screen Hide 
  31.   Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 
  32.   Screen Open 0,320,256,32,0
  33.   Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 
  34.   Reserve As Chip Work 9,2048
  35.   For A=2 To 2047
  36.     Poke Start(9)+A,A*7+Rnd(24)-A*Rnd(3)
  37.   Next 
  38.   Get Sprite Palette 
  39.   For A=0 To 15 : Colour A+16,Colour(A) : Next 
  40.   For A=0 To 15 : Colour A,0 : Next 
  41.   Fade 3,$8,$824,$F00,$F60,$FA0,$FF0,$FF8,$FFF
  42.   For A=8 To 15 : Colour A,$FFF : Next 
  43.   OX=160 : OY=128
  44.   Do 
  45.     Read XX1,YY1
  46.     Exit If XX1=-1
  47.     X1=((XX1-160)*3)/2+160
  48.     Y1=((YY1-50)*3)/2+50
  49.     Do 
  50.       Read XX2,YY2
  51.       Exit If XX2=-1
  52.       X2=((XX2-160)*3)/2+160
  53.       Y2=((YY2-50)*3)/2+50
  54.       For A=0 To 63
  55.         X=X1+((X2-X1)*A)/64
  56.         Y=Y1+((Y2-Y1)*A)/64
  57.         Sprite 0,X Hard(X),Y Hard(Y),1+Rnd(6)
  58.         P=Min( Extension_8_039E(X,Y)+1,7)
  59.          Extension_8_0388 X,Y,P
  60.          Extension_8_0388 X-1,Y,Min( Extension_8_039E(X-1,Y)+Rnd(1),7)
  61.          Extension_8_0388 X+1,Y,Min( Extension_8_039E(X+1,Y)+Rnd(1),7)
  62.          Extension_8_0388 X,Y-1,Min( Extension_8_039E(X,Y+1)+Rnd(1),7)
  63.          Extension_8_0388 X,Y+1,Min( Extension_8_039E(X,Y-1)+Rnd(1),7)
  64. '        Turbo Plot X,Y+1,Best Pen(Mix Colour(Colour(Turbo Point(X,Y+1)),Colour(P))) 
  65.         If(A and 7)=0
  66.            Extension_8_13F4 3,1,10000+Rnd(4400)
  67.            Extension_8_147C 2,X/10
  68.            Extension_8_147C 1,(320-X)/10
  69.            Extension_8_1030 160,128 To OX,OY,0,%1000
  70.            Extension_8_1030 160,128 To X,Y,15,%1000
  71.           Wait Vbl 
  72.           OX=X : OY=Y
  73.         End If 
  74.       Next 
  75.       X1=X2 : Y1=Y2
  76.     Loop 
  77.   Loop 
  78.   Sprite Off 
  79.    Extension_8_1030 160,128 To OX,OY,0,%1000
  80.   For A=8 To 15 : Colour A,Colour(A-8) : Next 
  81.   Restore 
  82.   Do 
  83.     Read XX1,YY1
  84.     Exit If XX1=-1
  85.     X1=((XX1-160)*3)/2+160
  86.     Y1=((YY1-50)*3)/2+50
  87.     Do 
  88.       Read XX2,YY2
  89.       Exit If XX2=-1
  90.       X2=((XX2-160)*3)/2+160
  91.       Y2=((YY2-50)*3)/2+50
  92.        Extension_8_1030 X1,Y1 To X2,Y2,15,-%1000
  93.       X1=X2 : Y1=Y2
  94.     Loop 
  95.   Loop 
  96.   For A=0 To 15 : Colour A+16,Colour(A) : Next 
  97.   Screen 1
  98.   Get Palette 0
  99.   For A=0 To 7 : Colour A,$8+A*$100 : Next 
  100.   For A=8 To 15 : Colour A,0 : Next 
  101.   For A=0 To 7 : Colour A+16,$800 : Next 
  102.   For A=8 To 15 : Colour A+16,Colour(A) : Next 
  103.   Screen 0
  104.    Extension_8_1042 0,3
  105.    Extension_8_128A 0
  106.    Extension_8_12B2 0,3 To 0,4
  107.    Extension_8_12B2 0,3 To 1,0
  108.   Screen Copy 1,0,0,320,256 To 1,0,256
  109.   Screen 1
  110.   Cls 0,0,0 To 320,256
  111.   LB=Logbase(0)
  112.   Wait Vbl 
  113.   Screen 0
  114.   Fade 3 To 1 : Wait 16
  115.   Break Off 
  116.   OB=Logbase(3)
  117.   Y=0 : YS=0 : P=0
  118.   Repeat 
  119.     Loke Screen Base+3*4+6*4,LB+(256-(Y/8))*40 : View 
  120.     Add Y,YS : Inc YS
  121.     Wait Vbl 
  122.     If Y/8>200 and P=0 Then P=1 : Extension_8_1466 64 : Extension_8_13F4 1,2,8000
  123.   Until Y/8>256
  124.   Loke Screen Base+3*4+6*4,OB
  125.    Extension_8_121C 0,3 : Wait Vbl : View 
  126.   Break On 
  127.   Wait 15
  128.    Extension_8_1466 32
  129.    Extension_8_13F4 2,2,8000
  130.   Screen 1 : Cls 
  131.    Extension_8_1204 13
  132.   T$="Pr�sentiert..."
  133.   Ink 1,0 : Text 160-Text Length(T$)/2,160,T$
  134.   Screen 1 : For A=8 To 15 : Colour A,$FFF : Next 
  135.   Screen 0 : For A=8 To 15 : Colour A,$8 : Next 
  136.   Wait Vbl 
  137.    Extension_8_12B2 1,0 To 0,3
  138.   Fade 2 To 1 : Wait 32
  139.   Screen Close 1
  140.   Erase 9
  141. Pop Proc
  142.   Data 74,30,93,28,104,58,108,27,125,25,137,55,140,24,159,22,148,75,129,76,119,47,116,78,97,79
  143.   Data 74,30,-1,-1
  144.   Data 159,22,175,25,171,38,155,35,159,22,-1,-1
  145.   Data 164,28,163,31,166,32,167,29,164,28,-1,-1
  146.   Data 155,41,171,40,173,77,157,77,155,41,-1,-1
  147.   Data 174,49,179,41,189,38,212,40,218,47,218,76,203,76,203,73
  148.   Data 195,76,181,76,172,69,174,59,183,55,201,51,201,46,192,47
  149.   Data 189,50,174,49,-1,-1
  150.   Data 202,60,189,64,194,68,201,65,202,60,-1,-1
  151.   Data 230,25,247,28,234,77,218,76,230,25,-1,-1
  152.   Data -1,-1
  153. End Proc
  154. Procedure WIALANIMLOWMEM
  155.   Wait 50 : Fade 1 : Wait 16 : Screen Close 0
  156.    Extension_8_0EA2 "IntroAnim1.dat",8
  157.    Extension_8_0EA2 "IntroAnim2.dat",9
  158.   ST1=Start(8)+12
  159.   ST2=Start(9)
  160.   SPEED=4
  161.   Wait Vbl : Timer=0
  162.   ST=Frame Play(ST1,1,0)
  163.   Screen Hide 
  164.   Screen Display 0,128+80,40+64,160,128
  165.   Double Buffer : Autoback 0
  166.   Wait Vbl 
  167.   FR=0
  168.    Extension_8_10F2 0
  169.    Extension_8_108E 3
  170.   PART=1
  171.   Screen Show 0
  172.   Repeat 
  173.     Screen Swap 
  174.      Extension_8_149E 0,0 : View 
  175.     If FR=97 or FR=100 or FR=104 or FR=108 or FR=113 or FR=117 or FR=120 Then Extension_8_13EA 8,7
  176.     If FR=136 Then Extension_8_13F4 8,8,14000
  177.     If FR=140 Then Repeat : Multi Wait : Until Extension_8_10B6 : SPEED=2
  178.     Repeat : Multi Wait : Until Timer>=SPEED : Timer=0
  179.     NST=Frame Play(ST,1)
  180.     AD=Hunt(ST To NST,"CMAP")
  181.     If AD
  182.       Add AD,8
  183.       For AA=0 To 15
  184.         C0=Peek(AD)/16 : C1=Peek(AD+1)/16 : C2=Peek(AD+2)/16 : Add AD,3
  185.          Extension_8_14C6 0,AA, Extension_8_0A0E(C0,C1,C2)
  186.       Next 
  187.     End If 
  188.     ST=NST : Inc FR
  189.     Exit If Leek(ST+4)=0 and PART=2
  190.     If Leek(ST+4)=0 and PART=1 Then ST=ST2 : PART=2
  191.   Until Inkey$=Chr$(27) or Mouse Key<>0
  192.   Auto View Off 
  193.   View 
  194.   For AA=0 To 15
  195.     Repeat : Multi Wait : Until Timer>=SPEED : Timer=0
  196.     Screen Swap : Extension_8_0FBA 0 : Screen Swap : View 
  197.   Next 
  198.   Auto View On 
  199.    Extension_8_10A8 
  200.   Screen Close 0
  201.   Erase 8 : Erase 9
  202. End Proc
  203. Procedure WIALANIM
  204.    Extension_8_0EA2 "IntroAnim1.dat",8
  205.    Extension_8_0EA2 "IntroAnim2.dat",9
  206.   Fade 2 : Wait 32 : Screen Close 0
  207.   ST1=Start(8)+12
  208.   ST2=Start(9)
  209.   SPEED=4
  210.   Wait Vbl : Timer=0
  211.   ST=Frame Play(ST1,1,0)
  212.   Screen Hide 
  213.   Double Buffer : Autoback 0
  214.   Wait Vbl 
  215.   Screen Open 1,320,128,4096,0
  216.   Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 0
  217.   Screen Hide 
  218.   Double Buffer : Autoback 0
  219.   Get Palette 0
  220.   Reserve As Chip Work 20,64
  221.   Copper Off 
  222.   Cop Reset 
  223.   Cop Move $100,$200
  224.   Cop Wait $FE,$FF
  225.   Cop Swap 
  226.   Cop Reset 
  227.   Cop Move $100,0
  228.   Cop Wait $80,$2E
  229.   For A=0 To 7
  230.     Cop Movel $120+A*4,Start(20)
  231.   Next 
  232.   CMAP= Extension_8_11E0 
  233.   For A=0 To 15
  234.     Cop Move $180+A*2,Colour(A)
  235.   Next 
  236.   Cop Movel $108,0 : Rem    BPL1MOD BPL2MOD 
  237.   Cop Movel $102,0 : Rem    BPLCON1 BPLCON2   
  238.   Cop Move $8E,$3081 : Rem  DIWSTRT   
  239.   Cop Move $90,$30C1 : Rem  DIWSTOP 
  240.   Cop Move $92,$38 : Rem    DDFSTRT 
  241.   Cop Move $94,$D0 : Rem    DFFSTOP 
  242.   BPL= Extension_8_11E0 
  243.   For A=0 To 5
  244.     Cop Movel $E0+A*4,Phybase(A)
  245.   Next 
  246.   SCRM= Extension_8_11E0 
  247.   Cop Move $100,$6A00 : Rem BLPCON0  
  248.   Cop Move $96,$8180 : Rem  DMACON  
  249.   Cop Move $1FC,0
  250.   For A=0 To 255
  251.     Cop Wait 7,A+$2F
  252.     Cop Move $108,-40*(A and 1)
  253.     Cop Move $10A,-40*(A and 1)
  254.     Cop Move $102,(A and 1)*$11
  255.   Next 
  256.   Cop Swap 
  257.   FR=0
  258.    Extension_8_10F2 0
  259.    Extension_8_108E 3
  260.   PART=1
  261.   Repeat 
  262.      Extension_8_1520 0,0,0,160,128 To 1,0,0,$12
  263.     Screen Swap 
  264.      Extension_8_149E 0,1
  265.     Screen 1
  266.     For A=0 To 5
  267.       Doke BPL+A*8+2, Extension_8_0946(Phybase(A))
  268.       Doke BPL+A*8+6,Phybase(A)
  269.     Next 
  270.     For A=0 To 15
  271.       Doke CMAP+A*4+2,Colour(A)
  272.     Next 
  273.     If FR=97 or FR=100 or FR=104 or FR=108 or FR=113 or FR=117 or FR=120 Then Extension_8_13EA 8,7
  274.     If FR=136 Then Extension_8_13F4 8,8,14000
  275.     If FR=140 Then Repeat : Multi Wait : Until Extension_8_10B6 : SPEED=2
  276.     Repeat : Multi Wait : Until Timer>=SPEED : Timer=0
  277.     Screen 0
  278.     NST=Frame Play(ST,1)
  279.     AD=Hunt(ST To NST,"CMAP")
  280.     If AD
  281.       Add AD,8
  282.       For AA=0 To 15
  283.         C0=Peek(AD)/16 : C1=Peek(AD+1)/16 : C2=Peek(AD+2)/16 : Add AD,3
  284.          Extension_8_14C6 0,AA, Extension_8_0A0E(C0,C1,C2)
  285.       Next 
  286.     End If 
  287.     ST=NST : Inc FR
  288.     Exit If Leek(ST+4)=0 and PART=2
  289.     If Leek(ST+4)=0 and PART=1 Then ST=ST2 : PART=2
  290.   Until Inkey$=Chr$(27) or Mouse Key<>0
  291.   Screen 1
  292.   Screen Swap 
  293.   For AA=0 To 15
  294.     Repeat : Multi Wait : Until Timer>=SPEED : Timer=0
  295.      Extension_8_0FBA 1
  296.     For A=0 To 5
  297.       Doke BPL+A*8+2, Extension_8_0946(Logbase(A))
  298.       Doke BPL+A*8+6,Logbase(A)
  299.     Next 
  300.     For A=0 To 15
  301.       Doke CMAP+A*4+2,Colour(A)
  302.     Next 
  303.   Next 
  304.    Extension_8_10A8 
  305.   Cop Reset 
  306.   Cop Move $100,$200
  307.   Cop Wait $FE,$FF
  308.   Cop Swap 
  309.   Doke SCRM+2,$200
  310.   Wait Vbl 
  311.   Copper On 
  312.   Screen Close 0
  313.   Screen Close 1
  314.   Erase 8 : Erase 9 : Erase 20
  315.   Hide On : Sprite Off 
  316. End Proc
  317. Procedure MAIN
  318.   Dim T$(5),EN(5),HELP$(5)
  319.    Extension_8_0456 "Info.dat",9
  320.    Extension_8_0456 "Artikel.dat",10
  321.   Unpack 12 To 0 : Screen Hide 
  322.   Colour 16,$FFF : Colour 20,$F00 : Colour 21,$FF0
  323.   Screen Open 1,320,256,32,0
  324.   Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 0
  325.   T$(0)="o Spiele�bersicht" : EN(0)=1
  326.   HELP$(0)="Gibt ihnen eine ï¿½bersicht ï¿½ber alle momentan verf�gbaren Spiele. Durch einen Klick auf einem Titel erhalten sie mehr Informationen zum Spiel."
  327.   T$(1)="o Suche Spiel" : EN(1)=1
  328.   HELP$(1)="L��t sie gezielt nach einem Spieltitel suchen."
  329.   T$(2)="o Spiele bestellen" : EN(2)=CNF(2)
  330.   HELP$(2)="Druckt ein Bestellformular mit den gew�hlten Spielen aus. Diese Option ist nur verf�gbar, wenn sie das Programm von einer Harddisk aus gestartet haben."
  331.   HELP$(3)="Gibt ein paar sinnlose Informationen zu diesem Katalog-Programm aus ;-)"
  332.   T$(4)="o Demos spielen" : EN(4)=CNF(1)
  333.   HELP$(4)="Hiermit k�nnen sie Demoversionen von Spiele antesten. Normalerweise nur bei der CD-Version verf�gbar."
  334.   If CNF(0)=0
  335.     T$(5)="o Programm verlassen"
  336.     HELP$(5)="Kehrt zur Workbench zur�ck."
  337.   Else 
  338.     T$(5)="o Auf Harddisk installieren"
  339.     HELP$(5)="Erm�glicht eine Installation des Hauptprogramms auf einer m�glicherweise vorhandenen Festplatte."
  340.   End If 
  341.   EN(5)=1 : EN(3)=1
  342.   Do 
  343.     For A=0 To 31 : Colour A,0 : Next 
  344.     Screen Display 1,128,40,320,256
  345.     Screen Offset 1,0,0
  346.     Gosub RS
  347.      Extension_8_1204 14
  348.     Gr Writing 0
  349.     If CNF(4)=0
  350.       TX[95,10,"Katalog   Diskette",16,0]
  351.       TX[15,10,"WIAL",20,0]
  352.       T$(3)="o ï¿½ber diese Diskette"
  353.     Else 
  354.       TX[135,10,"Katalog   CD",16,0]
  355.       TX[55,10,"WIAL",20,0]
  356.       T$(3)="o ï¿½ber diese CD"
  357.     End If 
  358.     Fade 2 To 0
  359.      Extension_8_1204 16
  360.     TX[300,5,"'"+ Extension_8_0EB8( Extension_8_07F2(CNF(3)) mod 100,2),20,0]
  361.      Extension_8_1204 15
  362.     For A=0 To 5
  363.       TX[10,80+A*25,T$(A),8+EN(A)*8,0]
  364.     Next 
  365.     OSB=-1
  366.     Show On 
  367.     X Mouse=X Hard(160) : Y Mouse=Y Hard(60)
  368.     BX=0
  369.     Do 
  370.       Multi Wait 
  371.       XM=X Screen(X Mouse) : YM=Y Screen(Y Mouse) : MK=Mouse Key
  372.       SB=-1
  373.       If YM>74 and YM<225
  374.         SB=(YM-75)/25
  375.       End If 
  376.       If OSB<>SB
  377.         If OSB<>-1
  378.           TN[10,80+OSB*25,T$(OSB),8+EN(OSB)*8]
  379.         End If 
  380.         OSB=SB
  381.         If OSB<>-1
  382.           TN[10,80+OSB*25,T$(OSB),8+EN(SB)*12]
  383.         End If 
  384.         TIM=0
  385.       End If 
  386.       If SB>-1 Then Inc TIM
  387.       If TIM=50
  388.         TIM=51
  389.         If BX=0
  390.           For X=2 To 80
  391.             Wait Vbl 
  392.             Y=(X*64)/80
  393.             Ink 16 : Box 232-X,136-Y To 231+X,135+Y
  394.             Ink 0 : Box 233-X,137-Y To 230+X,134+Y
  395.           Next 
  396.           BX=1
  397.         End If 
  398.         Ink 0 : Bar 233-80,137-64 To 230+80,134+64
  399.          Extension_8_1204 16
  400.         TT$=HELP$(SB)+Chr$(10)+"#"+Chr$(10)
  401.         Y=Free
  402.         POS=Varptr(TT$)
  403.         Y=74 : LP=POS : LS=POS
  404.         Do 
  405.           P=Peek(POS) : Inc POS
  406.           Exit If P=35
  407.           If P=32 or P=10 : LS=POS-1 : End If 
  408.           T$=Peek$(LP,POS-LP) : TL=Text Length(T$)
  409.           If P=10 or TL>159
  410.             T$=Peek$(LP,LS-LP) : TL=Text Length(T$)
  411.             Ink 21 : Text 232-TL/2,Y+Text Base,T$
  412.             Add Y,10
  413.             LP=LS+1
  414.           End If 
  415.         Loop 
  416.          Extension_8_1204 15
  417.       End If 
  418.       If MK=1 and SB>-1 Then Exit If EN(SB)=1
  419.     Loop 
  420.     Fade 2
  421.     For A=0 To 256 Step 8
  422.       Screen Display 1,128,40,320,256-A
  423.       Screen Offset 1,0,A
  424.       Wait Vbl 
  425.     Next 
  426.     Exit If SB=5
  427.     Hide 
  428.     On SB+1 Gosub OVERVIEW,SEARCHGAME,GAMEORDER,ABOUT,DEMOSPLAY
  429.   Loop 
  430. Pop Proc
  431. OVERVIEW:
  432. Return 
  433. SEARCHGAME:
  434. Return 
  435. GAMEORDER:
  436. Return 
  437. ABOUT:
  438. Return 
  439. DEMOSPLAY:
  440. Return 
  441. RS:
  442.   Screen Copy 0,0,0,256,256 To 1,0,0
  443.   Screen Copy 0,0,0,64,256 To 1,256,0
  444. Return 
  445. End Proc
  446. Procedure T[Y,T$,C1,C2]
  447.   XX=(320-Text Length(T$))/2
  448.   YY=Y+Text Base
  449.   Ink C2 : Text XX-1,YY,T$
  450.   Text XX+1,YY,T$
  451.   Text XX,YY-1,T$
  452.   Text XX,YY+1,T$
  453.   Ink C1 : Text XX,YY,T$
  454. End Proc
  455. Procedure TX[XX,Y,T$,C1,C2]
  456.   YY=Y+Text Base
  457.   Ink C2 : Text XX-1,YY,T$
  458.   Text XX+1,YY,T$
  459.   Text XX,YY-1,T$
  460.   Text XX,YY+1,T$
  461.   Ink C1 : Text XX,YY,T$
  462. End Proc
  463. Procedure TN[XX,Y,T$,C1]
  464.   YY=Y+Text Base
  465.   Ink C1 : Text XX,YY,T$
  466. End Proc